package cn.wuxun.review.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import cn.wuxun.common.pojo.Review;
import cn.wuxun.common.vo.SysResult;
import cn.wuxun.review.service.ReviewService;

@RestController
@RequestMapping("page/manage")
public class ReviewController {
	@Autowired
	private ReviewService reviewService;

	/**
	 * @param nid
	 * @return
	 * 查看当前新闻的评论
	 * 后台接收 page/manage/queryReviews
	 * 请求方式 Get
	 * 请求参数 String nid
	 * 返回数据 将查询到的Review结果封装到list中
	 */
	@RequestMapping("queryReviews")
	public List<Review> queryReviewsByNid(String nid) {
		List<Review> list = reviewService.queryReviewsByNid(nid);
		return list;
	}
	
	/**
	 * @param nid
	 * @return
	 * 根据新闻nid,统计该新闻下的评论条数,并输出到页面
	 * 后台接收 page/manage/queryReviewNum
	 * 请求方式 Get
	 * 请求参数 String nid
	 * 返回数据 将查询到评论数进行显示
	 */
	//SELECT COUNT(rid) FROM review WHERE nid = #{nid}
	@RequestMapping("queryReviewNum")
	public Integer queryReviewNum(String nid){
		return reviewService.queryReviewNum(nid);
	}
	
	/**
	 * @param review
	 * @return
	 * 添加评论
	 * 后台接收 page/manage/addReview
	 * 请求方式 Post
	 * 请求参数 Review review
	 * 返回数据 返回SysResult对象的json,其结构:
	 * Integer status; 200表示成功,其他表示失败
 	 * String msg;成功返回 “ok”,失败返回其他信息
	 * Object data;根据需求携带其他数据
	 */
	@RequestMapping("addReview")
	public SysResult addReview(Review review) {
		try {
			reviewService.addReview(review);
			return SysResult.ok();
		} catch (Exception e) {
			e.printStackTrace();
			return SysResult.build(201, "评论添加失败", null);
		}
	}

	/**
	 * @param review
	 * @return
	 * 删除评论
	 * 后台接收 page/manage/delReview
	 * 请求方式 Post
	 * 请求参数 String rid
	 * 返回数据 返回SysResult对象的json
	 */
	@RequestMapping("delReview")
	public SysResult delReviewById(String rid) {
		try {
			reviewService.delReview(rid);
			return SysResult.ok();
		} catch (Exception e) {
			e.printStackTrace();
			return SysResult.build(201, "删除失败", null);
		}
	}
	
	/**
	 * @param review
	 * @return
	 * 删除评论
	 * 后台接收 page/manage/updateReview
	 * 请求方式 Post
	 * 请求参数 Review review
	 * 返回数据 返回SysResult对象的json
	 */
	@RequestMapping("updateReview")
	public SysResult updateReview(Review review){
		try {
			reviewService.updateReview(review);
			return SysResult.ok();
		} catch (Exception e) {
			e.printStackTrace();
			return SysResult.build(201, "修改失败", null);
		}
	}
	
	
}
